package com.hqhy.like.stock.pojo.vo;

import cn.hutool.core.annotation.Alias;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.hqhy.like.common.enumerator.ServiceCode;
import com.hqhy.like.common.ex.ServiceException;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;

@Data
public class StockInListItemVO implements Serializable {
    /**
     * 数据id
     */
    private Long id;
    /**
     * 类别名称
     */
    @Alias("类别名称")
    private String categoryName;

    /**
     * 库存名称
     */
    @Alias("库存名称")
    private String name;

    /**
     * 数量
     */
    @Alias("数量")
    private Integer number;

    /**
     * 规格(单位)
     */
    @Alias("规格(单位)")
    private String unit;

    /**
     * 单价(元)
     */
    @Alias("单价(元)")
    private BigDecimal price;

    /**
     * 小计(元)
     */
    @Alias("小计(元)")
    private BigDecimal subtotalPrice;

    /**
     * 入库日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Alias("入库日期")
    private LocalDateTime stockInDate;

    /**
     * 备注
     */
    @Alias("备注")
    private String notes;

    public void setPrice(String priceStr) {
        try {
            this.price = new BigDecimal(priceStr);
        } catch (NumberFormatException e) {
            throw new ServiceException(ServiceCode.ERROR_BAD_REQUEST,"请输入一个正确的单价!");
        }
    }
}
